#!/bin/bash

# 输出颜色设置
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${YELLOW}======== UniApp项目自动安装脚本 ========${NC}"
echo -e "${YELLOW}版本：3.0.0-4050720250324001${NC}"
echo -e "${YELLOW}=======================================${NC}"

# 检查node版本
NODE_VERSION=$(node -v)
echo -e "${GREEN}Node版本: ${NODE_VERSION}${NC}"
if [[ ! "$NODE_VERSION" =~ ^v[0-9]+\. ]]; then
  echo -e "${RED}未检测到Node.js，请先安装Node.js${NC}"
  exit 1
fi

# 检查npm版本
NPM_VERSION=$(npm -v)
echo -e "${GREEN}NPM版本: ${NPM_VERSION}${NC}"

# 清理之前的安装
echo -e "${YELLOW}正在清理之前的安装...${NC}"
rm -rf node_modules
rm -f package-lock.json

# 设置淘宝镜像（可选）
echo -e "${YELLOW}是否要设置淘宝NPM镜像? (y/n)${NC}"
read -r USE_TAOBAO
if [[ "$USE_TAOBAO" =~ ^[Yy]$ ]]; then
  echo -e "${GREEN}设置淘宝NPM镜像...${NC}"
  npm config set registry https://registry.npmmirror.com/
  echo -e "${GREEN}NPM镜像已设置为: $(npm config get registry)${NC}"
fi

# 修复项目结构
echo -e "${YELLOW}正在修复项目结构...${NC}"
mkdir -p src/static/images/tabbar

# 检查并复制manifest.json
if [ -f "manifest.json" ] && [ ! -f "src/manifest.json" ]; then
  echo -e "${GREEN}复制manifest.json到src目录...${NC}"
  cp manifest.json src/
fi

# 检查并复制pages.json
if [ -f "pages.json" ] && [ ! -f "src/pages.json" ]; then
  echo -e "${GREEN}复制pages.json到src目录...${NC}"
  cp pages.json src/
fi

# 检查并复制uni.scss
if [ -f "uni.scss" ] && [ ! -f "src/uni.scss" ]; then
  echo -e "${GREEN}复制uni.scss到src目录...${NC}"
  cp uni.scss src/
fi

# 检查并复制pages目录
if [ -d "pages" ] && [ ! -d "src/pages" ]; then
  echo -e "${GREEN}复制pages目录到src目录...${NC}"
  cp -r pages src/
fi

# 检查并复制static目录
if [ -d "static" ] && [ ! -d "src/static" ]; then
  echo -e "${GREEN}复制static目录到src目录...${NC}"
  cp -r static/* src/static/
fi

echo -e "${GREEN}项目结构修复完成${NC}"

# 安装特定版本的依赖
echo -e "${YELLOW}正在安装UniApp和uView Plus依赖...${NC}"
npm install

# 检查安装结果
if [ $? -eq 0 ]; then
  echo -e "${GREEN}安装成功！${NC}"
  echo -e "${GREEN}您可以使用以下命令运行项目:${NC}"
  echo -e "${GREEN}  npm run dev:h5     # 运行H5版本${NC}"
  echo -e "${GREEN}  npm run dev        # 运行APP版本${NC}"
  echo -e "${GREEN}  npm run dev:mp-weixin  # 运行微信小程序版本${NC}"
else
  echo -e "${RED}安装失败！${NC}"
  echo -e "${YELLOW}如果遇到问题，请尝试以下方案:${NC}"
  echo -e "1. ${YELLOW}使用HBuilderX创建项目（推荐）${NC}"
  echo -e "   下载地址: https://www.dcloud.io/hbuilderx.html"
  echo -e "2. ${YELLOW}尝试切换Node.js版本${NC}"
  echo -e "   推荐使用Node.js v16-v18 LTS版本"
  echo -e "3. ${YELLOW}检查网络连接或切换NPM源${NC}"
  echo -e "   npm config set registry https://registry.npmmirror.com/"
  echo -e "4. ${YELLOW}查看错误日志${NC}"
  echo -e "   npm install --verbose"
  echo -e "5. ${YELLOW}检查项目结构${NC}"
  echo -e "   确保manifest.json, pages.json, uni.scss等文件都在src目录下"
fi

echo -e "${YELLOW}=========== 脚本执行完成 ===========${NC}" 